Skip to content

fix: suppress dependabot for non-production ecosystems#498

Merged
ruromero merged 2 commits into
guacsec:mainfrom
ruromero:fix/dependabot-suppress-fixtures
Apr 29, 2026
Merged

fix: suppress dependabot for non-production ecosystems#498
ruromero merged 2 commits into
guacsec:mainfrom
ruromero:fix/dependabot-suppress-fixtures

Conversation

@ruromero

@ruromero ruromero commented Apr 29, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Add root-level ignore: [{dependency-name: "*"}] entries for all ecosystems with no production dependencies (maven, pip, uv, gomod, gradle, cargo)
  • Replace /** glob patterns with explicit directory listings for npm test fixture entries, since globs don't reliably match nested subdirectories for security updates
  • Add test fixture dependabot guidance to CONVENTIONS.md

Context

Per-directory entries with /** globs don't reliably suppress Dependabot security updates for nested subdirectories (e.g., workspace member packages/member-a). Root-level ignore: * reliably blocks both version and security updates for non-production ecosystems (proven in the Java client). For npm (production ecosystem), explicit directory listings replace unreliable globs.

Test plan

  • Verify no new Dependabot security PRs appear for test fixture directories
  • Verify production npm dependency updates still work normally
  • Verify maven/pip/cargo/go/gradle/uv test fixture PRs are fully suppressed

🤖 Generated with Claude Code

Summary by Sourcery

Adjust Dependabot configuration to fully suppress updates for non-production ecosystems and test fixtures while preserving production npm updates, and document the conventions for managing these fixtures.

Build:

  • Configure root-level Dependabot entries for maven, pip, uv, gomod, gradle, and cargo to ignore all dependencies and prevent opening pull requests.
  • Refine npm Dependabot configuration to enumerate all test fixture directories explicitly instead of using glob patterns, ensuring their dependencies are not updated.

Documentation:

  • Add documentation describing how test fixture directories are handled by Dependabot and what to update when adding new fixtures.

Add root-level `ignore: [{dependency-name: "*"}]` entries for all
ecosystems with no production dependencies (maven, pip, uv, gomod,
gradle, cargo).

Replace glob patterns with explicit directory listings for npm test
fixture entries, since `/**` globs don't reliably match nested
subdirectories for security updates.

Add test fixture guidance to CONVENTIONS.md.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@sourcery-ai

sourcery-ai Bot commented Apr 29, 2026

Copy link
Copy Markdown

Reviewer's Guide

Configures Dependabot so that non-production ecosystems (maven, pip, uv, gomod, gradle, cargo) are globally ignored, and replaces fragile glob-based npm test fixture suppression with explicit per-directory entries plus documentation in CONVENTIONS.md.

Flow diagram for Dependabot update decision after configuration changes

flowchart TD
  A[Dependabot scans repository] --> B[Detect manifest file]
  B --> C[Identify ecosystem]

  C -->|maven or pip or uv or gomod or gradle or cargo| D[Apply root level ignore star]
  D --> E[Suppress all updates]

  C -->|npm| F[Check directory against explicit fixture list]

  F -->|directory listed as fixture| G[Suppress all updates for this manifest]
  F -->|directory not listed| H[Treat as production npm dependency]

  H --> I[Allow security and version update PRs]

  C -->|other ecosystems if any| J[Use default Dependabot behavior]
  J --> I
Loading

File-Level Changes

Change Details Files
Globally suppress Dependabot for non-production ecosystems via root-level ignore-all entries.
  • Replaced per-directory test fixture configurations for maven, pip, uv, gomod, gradle, and cargo with single root-level entries using directory: "/".
  • Set open-pull-requests-limit: 0 for these ecosystems to ensure no PRs are opened.
  • Added ignore: [{ dependency-name: "*" }] for each non-production ecosystem to suppress both version and security updates while keeping a monthly schedule stub.
.github/dependabot.yml
Make npm test fixture suppression explicit and reliable by listing each directory instead of using /** globs.
  • Removed previous npm configuration that relied on /** directory globs for test fixture suppression across npm/pnpm/yarn directories.
  • Added a single npm Dependabot entry that enumerates every test-fixture directory containing a package.json across provider_manifests and tst_manifests for npm, pnpm, yarn-berry, and yarn-classic.
  • Documented in comments that this list must be updated when adding new fixtures and that glob patterns are unreliable for nested security updates.
.github/dependabot.yml
Document Dependabot behavior and expectations for test fixtures.
  • Added a "Test Fixtures" section explaining that fixtures intentionally pin dependencies and must be covered by Dependabot suppression rules.
  • Clarified that non-npm ecosystems are suppressed via root-level ignore-all entries.
  • Clarified that npm fixtures use per-directory entries and that new manifest trees require updating .github/dependabot.yml.
CONVENTIONS.md

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey - I've found 1 issue, and left some high level feedback:

  • The new "Test Fixtures" section in CONVENTIONS.md still describes npm fixtures as using /** globs, but the Dependabot config now uses explicit directory listings; updating that description to match the new approach would avoid confusion for future changes.
  • The npm test fixture directory list in .github/dependabot.yml is now quite long and manual; consider grouping by common parent directories or adding a brief comment near each block to clarify which fixture tree it covers, to make it easier to maintain when new fixtures are added.
Prompt for AI Agents
Please address the comments from this code review:

## Overall Comments
- The new "Test Fixtures" section in CONVENTIONS.md still describes npm fixtures as using `/**` globs, but the Dependabot config now uses explicit directory listings; updating that description to match the new approach would avoid confusion for future changes.
- The npm test fixture directory list in `.github/dependabot.yml` is now quite long and manual; consider grouping by common parent directories or adding a brief comment near each block to clarify which fixture tree it covers, to make it easier to maintain when new fixtures are added.

## Individual Comments

### Comment 1
<location path=".github/dependabot.yml" line_range="36-43" />
<code_context>
+  - package-ecosystem: "npm"
</code_context>
<issue_to_address>
**issue (bug_risk):** The npm test-fixture block no longer ignores all dependencies, so Dependabot will create PRs for these directories.

The previous npm fixture config explicitly ignored all dependencies:

```yaml
ingore:
  - dependency-name: "*"
```

In the new `npm` block this ignore section is missing, so Dependabot will now open update PRs (including security ones) for every `package.json` in these test-fixture directories, which conflicts with the header comment that fixtures must not be updated. To preserve the original behavior, please add:

```yaml
    ignore:
      - dependency-name: "*"
```

under this npm entry.
</issue_to_address>

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

Comment thread .github/dependabot.yml
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@ruromero
ruromero merged commit 5d1bb66 into guacsec:main Apr 29, 2026
5 checks passed
@ruromero
ruromero deleted the fix/dependabot-suppress-fixtures branch April 29, 2026 14:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants